/*第九题：带分数
题目描述
100 可以表示为带分数的形式：100 = 3 + 69258 / 714
还可以表示为：100 = 82 + 3546 / 197
注意特征：带分数中，数字1~9分别出现且只出现一次（不包含0）。
类似这样的带分数，100 有 11 种表示法。

题目要求：
从标准输入读入一个正整数N (N<1000*1000)
程序输出该数字用数码1~9不重复不遗漏地组成带分数表示的全部种数。
注意：不要求输出每个表示，只统计有多少表示法！

例如：
用户输入：
100
程序输出：
11

再例如：
用户输入：
105
程序输出：
6

资源约定：
峰值内存消耗（含虚拟机） < 64M
CPU消耗 < 3000ms

请严格按要求输出，不要画蛇添足地打印类似：“请您输入…” 的多余内容。
所有代码放在同一个源文件中，调试通过后，拷贝提交该源码。
注意：不要使用package语句。不要使用jdk1.6及以上版本的特性。
注意：主类的名字必须是：Main，否则按无效代码处理。*/


import java.util.ArrayList;
import java.util.Scanner;

public class 第九题 {
    public static ArrayList<String> res = new ArrayList<>();
    public static int N = 0;
    public static int ans = 0;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        N = sc.nextInt();
        getPermultation("123456789");
        System.out.println(ans);

    }

    public static void getPermultation(String A) {
        char[] arr = A.toCharArray();
        getPermultationCore(arr, arr.length, 0);

    }

    private static void getPermultationCore(char[] arr, int len, int cur) {
        if (cur == len) {
            String data = new String(arr);
            for (int i = 0; i < data.length(); i++) {
                int first = Integer.parseInt(data.substring(0, i + 1));
                if (first >= N) {
                    break;
                }

                int secondStart = i + 1;
                for (int j = secondStart; j < data.length() - 1; j++) {
                    int second = Integer.parseInt(data.substring(secondStart, j + 1));
                    int third = Integer.parseInt(data.substring(j + 1, 9));

                    if(second/third > N){
                        break;
                    }

                    if (second == third * (N - first)) {
                        ans++;
//                        System.out.println(first + " " + second + " " + third);
                    }
                }
            }
            return;
        }

        for (int i = cur; i < len; i++) {
            swap(arr, i, cur);
            getPermultationCore(arr, len, cur + 1);
            swap(arr, i, cur);
        }

    }

    public static void swap(char[] arr, int start, int end) {
        char temp = arr[start];
        arr[start] = arr[end];
        arr[end] = temp;
    }
}
